{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "# k-Nearest Neighbor Methods and Image Data\n",
      "\n",
      "In this lab we will explore MNIST, a classic machine learning data set of images of handwritten digits (i.e., 0, 1, 2, 3, ...).\n",
      "In addition, we will investigate an intuitive, yet powerful learning method called k-nearest neighbors (KNN).\n",
      "Even though the type of data is different from what we've worked with so far, we'll see how to apply familiar tools to the data, namely, scikit learn and matplotlib for machine learning and plotting in python.\n",
      "\n",
      "Don't forget to fill out the [response form](https://docs.google.com/a/berkeley.edu/forms/d/188vgp28CXJrJ_qRpyGGBNwG0RjPvAfzirH9zLeSTMKo/viewform).\n",
      "\n",
      "And if you haven't already, fetch the data by running to following code (it will download into the `DATA_PATH` directory):"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%pylab inline\n",
      "import pylab\n",
      "from sklearn.datasets import fetch_mldata\n",
      "DATA_PATH = '/Users/bruckner/Documents/Courses/CS194-16/datascience-labs/lab7'\n",
      "mnist = fetch_mldata('MNIST original', data_home=DATA_PATH)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Populating the interactive namespace from numpy and matplotlib\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## MNIST\n",
      "\n",
      "<center>\n",
      "    <img src=\"http://3.bp.blogspot.com/_UpN7DfJA0j4/TJtUBWPk0SI/AAAAAAAAABY/oWPMtmqJn3k/s320/mnist_originals.png\">\n",
      "</center>\n",
      "\n",
      "The [MNIST database](http://yann.lecun.com/exdb/mnist/) of handwritten digits is a collection of labeled images that has been used to evaluate machine learning techniques since the '90's.\n",
      "The core application of the MNIST data is to train computer vision systems to recognize handwritten text.\n",
      "The post office, for example, is a major user of such systems---addresses on letters and packages are all photographed, read, and routed digitally, with only a few ambiguous cases verified by a human.\n",
      "\n",
      "The MNIST data set has also become a reliable benchmark for learning methods.\n",
      "It's small, but not tiny, and the data dimensionality (28x28 pixels) is big enough to cause some \"curse of dimensionality\" issues.\n",
      "Also, the problem is highly non-linear, meaning a linear classification methods (like linear regression, but for predicting discete categories) don't perform so well on the raw data.\n",
      "The MNIST [website](http://yann.lecun.com/exdb/mnist/) reports an extensive list of results obtained by different machine learning models, including neural nets, SVM, nearest neighbors, and others.\n",
      "\n",
      "The data consists of 60,000 training images and 10,000 test images.\n",
      "Each image is a 28x28 pixel, grayscale picture of a digit written either by a highschool student or an employee of the US Census Bureau.\n",
      "The images have all been preprocessed to be clean and regular: only one digit appears in each image, and it appears directly in the center of the image.\n",
      "\n",
      "The goal of the benchmark is to fit a model to the training set, and then use that model to predict which digit is in each of the test images.\n",
      "The best results achieve a classification error rate of less than half of one percent.\n",
      "This is often described as the \"human error rate,\" because if you ask people to classify the images, they will also find about 0.5% of them to be comepletely inscutable."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### MNIST Data\n",
      "\n",
      "Let's take a look at the data.\n",
      "MNIST data is easy to load with the built in scikit learn `datasets` module.\n",
      "Make sure you've loaded the data set by running the code at the top of the lab.\n",
      "\n",
      "The image data itself is in `mnist.data`, and it's stored in a numpy [n-dimensional array](http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html) (n=2 in this case).\n",
      "Numpy arrays are a vector/matrix data structure that provide high performance numerical computing.\n",
      "\n",
      "We can find out the dimensions of the array with its `shape` property:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "mnist.data.shape"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 2,
       "text": [
        "(70000, 784)"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "There are 70,000 rows and 784 columns.\n",
      "So each row is an image (60,000 training images plus 10,000 test ones gives 70,000 total), and each column is a pixel value (784 = 28 * 28).\n",
      "\n",
      "Like Pandas DataFrames, numpy arrays give us a simple interface to summary statistics and subsets of the data.\n",
      "\n",
      "Numpy arrays are indexed dimension-wise, with each dimension separated by a column:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "row = mnist.data[0,:] # First row of the array\n",
      "col = mnist.data[:,0] # First column of the array\n",
      "\n",
      "print row.shape\n",
      "print col.shape"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "(784,)\n",
        "(70000,)\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "In this syntax, the \":\" means \"ALL\", as in standard python indexing.\n",
      "All of the usual python range indexing syntax works for each dimension of the array.\n",
      "We can compute summary statistics, too:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "print row.sum(), row.max(), row.min()\n",
      "print col.sum(), col.max(), col.min()\n",
      "\n",
      "print mnist.data[:10,:] # First ten rows\n",
      "print mnist.data[:,-10:] # Last ten columns"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "31095 255 0\n",
        "0 0 0\n",
        "[[0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]\n",
        " ..., \n",
        " [0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]]\n",
        "[[0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]\n",
        " ..., \n",
        " [0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]\n",
        " [0 0 0 ..., 0 0 0]]\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "\n",
      "Let's divide the array into two sets, one for training images and one for test:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "train = mnist.data[:60000]\n",
      "test = mnist.data[60000:]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Note that we can drop the trailing \",:\" when we want to just index the first dimension.\n",
      "\n",
      "### DIY\n",
      "\n",
      "* To start, we want to work with just a sample of the training data. Create a sample consisting of every 100th image in `test`.\n",
      "\n",
      "* Find the mean value of the 300th column in the sample data set."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "test_sample = test[::100]\n",
      "\n",
      "test_sample[:,299].mean()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "88.819999999999993"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Visualizing Image Data\n",
      "\n",
      "One of the nicest things about image data is that it is naturally visualized and understood.\n",
      "First, let's take a look at the raw data in the first image in the data set:\n",
      "\n"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "img = mnist.data[0]\n",
      "print img"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0  51 159 253 159  50   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0  48 238 252 252 252 237   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0  54 227 253 252 239 233 252  57   6   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0  10  60 224 252 253 252 202  84 252\n",
        " 253 122   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0 163 252 252 252 253 252 252  96 189 253 167   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0  51 238 253 253 190 114 253 228\n",
        "  47  79 255 168   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0  48 238 252 252 179  12  75 121  21   0   0 253 243  50   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0  38 165 253 233 208  84   0   0\n",
        "   0   0   0   0 253 252 165   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   7 178 252 240  71  19  28   0   0   0   0   0   0 253 252 195   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0  57 252 252  63   0   0   0\n",
        "   0   0   0   0   0   0 253 252 195   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0 198 253 190   0   0   0   0   0   0   0   0   0   0 255 253\n",
        " 196   0   0   0   0   0   0   0   0   0   0   0  76 246 252 112   0   0\n",
        "   0   0   0   0   0   0   0   0 253 252 148   0   0   0   0   0   0   0\n",
        "   0   0   0   0  85 252 230  25   0   0   0   0   0   0   0   0   7 135\n",
        " 253 186  12   0   0   0   0   0   0   0   0   0   0   0  85 252 223   0\n",
        "   0   0   0   0   0   0   0   7 131 252 225  71   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0  85 252 145   0   0   0   0   0   0   0  48 165\n",
        " 252 173   0   0   0   0   0   0   0   0   0   0   0   0   0   0  86 253\n",
        " 225   0   0   0   0   0   0 114 238 253 162   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0  85 252 249 146  48  29  85 178 225 253\n",
        " 223 167  56   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "  85 252 252 252 229 215 252 252 252 196 130   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0  28 199 252 252 253 252 252 233\n",
        " 145   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0  25 128 252 253 252 141  37   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0\n",
        "   0   0   0   0   0   0   0   0   0   0]\n"
       ]
      }
     ],
     "prompt_number": 7
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "These are all the pixel values in the image.\n",
      "We can see some patterns (e.g., the edges are empty), but it's hard to interpret.\n",
      "In fact, we can can a much better view if we use the `imshow` method from matplotlib to display an image:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# XXX This code won't work!\n",
      "#pylab.imshow(img, cmap=\"Greys\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 8
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Annnnnd... it breaks.\n",
      "What went wrong?\n",
      "Since images are two dimensional objects, `imshow` expects a two dimensional array of data to plot, but the rows of our data array are flat vectors.\n",
      "Luckily, numpy arrays provide a `reshape` method that let's us change the dimensions of our data, (as long as we leave total length the same).\n",
      "Let's reshape our image data into a 28x28 pixel square and try again:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "pylab.imshow(img.reshape(28, 28), cmap=\"Greys\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 9,
       "text": [
        "<matplotlib.image.AxesImage at 0x1132f3210>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x10f4631d0>"
       ]
      }
     ],
     "prompt_number": 9
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "It's a zero!\n",
      "Now we're getting somewhere.\n",
      "\n",
      "### DIY\n",
      "\n",
      "* Use `imshow` to visualize a number of images from `sample`.  What can you say about how the data set is ordered?"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "pylab.imshow(train[1000].reshape(28, 28), cmap=\"Greys\")\n",
      "pylab.imshow(train[10000].reshape(28, 28), cmap=\"Greys\")\n",
      "pylab.imshow(train[20000].reshape(28, 28), cmap=\"Greys\")\n",
      "pylab.imshow(train[30000].reshape(28, 28), cmap=\"Greys\")\n",
      "pylab.imshow(train[40000].reshape(28, 28), cmap=\"Greys\")\n",
      "# Data is in blocks, so all 0's first, then all 1's, etc."
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 10,
       "text": [
        "<matplotlib.image.AxesImage at 0x11683b9d0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nImLPT6Qz7uGJEyfk7NmzIlLZALVT7l9ofiLtuX/7TvgbN27IXXfdFX8+depUfIGdglwuJ5/97Gfl\n4Ycfln/6p3866OmYmJubi5t9TE1Nydzc3AHPqBqd1mAUDVA/85nPdOT9O4gGrftOeHSs6WS8+eab\n8vbbb8vPf/5z+cd//Ef51a9+ddBTSkQul+u4+9ppDUbX1tbkiSeekJdfflmGh4cr/q0T7t9BNWjd\nd8J/9KMflevXr8efr1+/LqdOndrv09YF9Mk7fvy4fOELX5C33nrrgGdUjampKbl165aIfNDbjxt6\ndgImJydjIj333HMHeg/RAPWpp56KG6B20v0LNWhtx/3bd8I//PDD8pvf/EauXbsmpVJJ/uM//kMe\ne+yx/T5tamxsbMjq6qqIiKyvr8svfvGLCutzp+Cxxx6TK1euiIjIlStX4gelU3Dz5s14/0c/+tGB\n3cMoiuTZZ5+Vj3/84/Ktb30r/r5T7l9ofm27f/tuFoyi6Gc/+1l03333Rffcc0/0ve99rx2nTI3f\n/va30ZkzZ6IzZ85En/jEJzpifk8++WR08uTJqLe3Nzp16lT0z//8z9HCwkL0x3/8x9G9994bnT9/\nPlpaWuqY+b3yyivRU089FT344IPRQw89FP3pn/5pdOvWrQOZ269+9asol8tFZ86cic6ePRudPXs2\n+vnPf94x98+a389+9rO23T8PrXU4MgSPtHM4MgQnvMORITjhHY4MwQnvcGQITniHI0NwwjscGYIT\n3uHIEJzwDkeG8H8pTOnwjBQDOwAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x1132de950>"
       ]
      }
     ],
     "prompt_number": 10
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## Unsupervised KNN\n",
      "\n",
      "Next, we're interested in uncovering more structure in the MNIST data.\n",
      "For example, we want to be able to answer questions like \"how similar are people's handwriting?\" and \"how distinct are the different digits?\"\n",
      "If we get a sense of the variance in the data, and of how tighly it is clustered, we can begin to see a good approach to modeling.\n",
      "\n",
      "In the spirit of doing the simplest possible thing that might work, we can look at nearest neighbors using simple Euclidean distance between pixels.\n",
      "The assumption is that most digits look the same, so they should have similar values in individual pixels.\n",
      "Let's find out if this assumption is a good one.\n",
      "\n",
      "We can use the [`sklearn.neighbors`](http://scikit-learn.org/stable/modules/neighbors.html) module to compute nearest neighbors, in particular with the [`NearestNeighbors`](http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.NearestNeighbors.html#sklearn.neighbors.NearestNeighbors) class:\n"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%time\n",
      "from sklearn.neighbors import NearestNeighbors\n",
      "model = NearestNeighbors(algorithm='brute').fit(train)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 8.88 ms, sys: 6.87 ms, total: 15.8 ms\n",
        "Wall time: 49.8 ms\n"
       ]
      }
     ],
     "prompt_number": 11
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Note how fast we built a nearest neighbors model, just a few microseconds!\n",
      "This is because we're using the brute force implementation (`algorithm='brute'`), which simple stores the training data to build a model, and does a full pairwise comparison at query time.\n",
      "\n",
      "Let's query our new model.  We can fetch the *k* nearest neighbors with the `kneighbors` method:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%time\n",
      "query_img = test[0]\n",
      "_, result = model.kneighbors(query_img, n_neighbors=4)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 284 ms, sys: 254 ms, total: 539 ms\n",
        "Wall time: 487 ms\n"
       ]
      }
     ],
     "prompt_number": 12
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Notice that query time is significant, even for a single image.\n",
      "Also, notice that `kneighbors` returns two values.\n",
      "The first, which we will ignore, are the distance values to the nearest neighbors.\n",
      "The second is a list of indices where we can look up the nearest neighbors in the training set.\n",
      "\n",
      "With the results, now we can see how we did."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "print result"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "[[2857 5849 3393 3209]]\n"
       ]
      }
     ],
     "prompt_number": 13
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "There are four results, as expected.\n",
      "Let's print them out with the utility function below:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Display several images in a row\n",
      "def show(imgs, n=1):\n",
      "    fig = pylab.figure()\n",
      "    for i in xrange(0, n):\n",
      "        fig.add_subplot(1, n, i, xticklabels=[], yticklabels=[])\n",
      "        if n == 1:\n",
      "            img = imgs\n",
      "        else:\n",
      "            img = imgs[i]\n",
      "        pylab.imshow(img.reshape(28, 28), cmap=\"Greys\")"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 14
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "query_img = test[5000]\n",
      "_, result = model.kneighbors(query_img, n_neighbors=4)\n",
      "show(query_img)\n",
      "show(train[result[0],:], len(result[0]))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nAz5+SGwAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x11677c6d0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAV0AAABXCAYAAACnZJZlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnWdzG9fZhm/03jtIAOyqlC3bcpxJMnI+JPlZsv9L/kG+\nZsaeSeKxPSPTNElRJilSBED0tuhlAbwf9D5HCxAAKwrBc81wJILYJfBwce85T5V1u90uOBwOhzMR\n5NN+ARwOh3Of4KLL4XA4E4SLLofD4UwQLrocDoczQbjocjgczgThosvhcDiTpDuCly9fdgHwrxFf\nL1++HGXCkXD7ctveRfty297MtiNFlw5+9epV99WrV93vvvvuUn+UV69eXeFPeLeO+e6775g9Xr16\n1QVGmnAk3L69x3DbjveY27IvgO6rV6+YfS9r2/7XM0/HXMW2SlzA119/jW+++eaip90bvv76a3z9\n9dfs+2+//fbG5+P2/QC37Xi5Tft+88037ItzNdtyny6Hw+FMkAtFV6rel4UfM95z82PGd15+zHjP\nzY8BZN3u8N4LMpkMI37Mwc1sxO07Gm7b8XJdG3HbXswoG3H3AofD4UwQLrocDoczQbjocjgczgTh\nosvhcDgThIsuh8PhTJALiyPGBUX2Wq0WqtUqKpUKZDIZlEolVCoV1Go1VCoVlMrelyiTySCTyabx\nkjkcDufGTE10AaDT6aBWq+Hs7AzRaBRyuRwGgwFGoxFWqxUWiwVarZY9Xy6XQ6FQAAAXXg6HcyeZ\n6kpXKro7OztQKBRwOBxwOBwQRRFqtbpnpatQKCCTyaBQKNDtdrnwcjicO8eFoiutre6vL74q3Q8N\ndtDpdFAoFFAoFBCJRLC3t4ednR10Oh0YjUYYjUbYbDZYrVbodDp2vN/vRygUgt/vh1wuZytfhUJx\nzg0xLr7//nt8//33t3a+27Qv0W63UavVUKvVUCgUkM1mkcvl0Gg00Gg00G63AXz4e2g0Gmi1WphM\nJvh8Pvj9fuh0OmbfSXIXbAt8sG+n02GusWq1imw2i1QqhXw+D7fbDbfbDZPJ1HN9krtMpVJBpVLd\nafuOy7ZEo9FgGpHL5ZDL5VAoFNjPBy26pI85HA6srKxgdXWV7Y7HyVVsO9GKtE6ng06ng3a7jffv\n3+P09BQHBwf45ZdfsLW1hXq9zvy5arUaGo2mR0yfP3+Ov/zlL3j+/DmUSiWUSiV7nlqtnsrKdxar\npprNJhPa4+Nj/P777zg6OkKxWESxWESj0WC/12w2w2KxYGFhAS9evMAXX3wBh8PB7DtNZtG2wIc4\nRKvVQqVSQTqdRiaTwe+//46dnR0cHR3h2bNnePbsGRYWFtj1qdVqodVqodPpoNfrodfroVKpxvL6\nLsssV6SVSiUcHx/j+PgYR0dHODw8xMnJCYCP8SDp5136emQyGR48eIB//OMf+Pvf/w6NRjPW1zqI\nUTaayKeKfrkoimg0GqjVaojFYjg4OMDe3h4zaLVaHXmeVqsFm80Gi8XCAm3k/7VarT0rBwq4Sb/u\nC61WC/l8Hqenp9jf38fW1hZ2d3eRz+eRz+dRr9fZrsNms8Fut2N5eRkGgwFerxfdbhdGoxEGg4Gt\neO+T/YZBNqtUKhAEAZlMBrFYDLFYDNvb2/j555+xt7eHarWKbreLYrEIjUYDjUYDg8EAg8EAk8kE\nl8vVc13Sdctt/EEjRFFEoVBAOBxmu+Dd3V28ffv2nJCRzehvQzbN5/NYXl7G559/DpPJxHYXs6AH\nYxddqUuhVCohnU4jmUxid3cX29vbODg4QCKRgCiKF54rHo/jp59+QjqdZqthr9eLR48e4eHDh2xl\nRn5fWq3Rlu6+0Gg0EIlEsLW1hd9//x3hcBi5XA61Wo25FuiiazabKBaLiMfj2N3dhUKhwNraGkKh\nEAKBAHQ6HbRa7b2y3yDoGhZFEaenp3j79i1OTk6QSqWQTCYRiUSQyWTQ7XYRj8extbWFcDjMrj+d\nTgeDwQCr1YrHjx/j8ePHcLvd7DqmG9u0BWGadLtdlEol5PN5vH//Hm/evMHW1hbev3+PfD7fI7DA\nx4WV1K1Aj1UqFZycnOCnn36C3++H2+2G3W5nO4+5Fl0AzKVQKpVwdnaGo6MjJronJydoNptotVoX\nnicej0MQBPz222/sYt3Y2ECn04HL5YJarQbwIcuBjEsGvk+i0Wg0EI1GsbW1hXfv3iGdTiOfzzNf\npPRCbTQaEEUR7XYbSqUSgiAgl8tBFEUmErRKuM90u120222IoohwOIwff/wR29vbyOVyyGazqFar\naDQa6HQ6iMViyOVyPSsrrVYLvV4Ph8PBdmwkxORz7N+p3UeKxSJisRiOjo6wt7eHra0tZLNZtFqt\nczaR3qCkq1wATHR//vlnPHjwAO12m7kZpuFPlzKRlW6r1UKj0UAmk8Hx8TG2t7dxdHSERCKBYrF4\n6XPV63XU63Xk83m2epXL5bDb7dBoNEwYVCoVcznY7XY4nc6p390mAQXKMpkMUqkU4vE4MpkMSqUS\nms3mwGM6nQ663S6q1SpSqRSazSYT5Wq1igcPHmBjY6Mnde++IN2lFYtFZDIZpNNp7O3t4eDgACcn\nJyiVSiiXy2wHAXy8TqXQIqBUKsHtdsNsNiOfz8NisbDUSHqO1OcrTZOcV/L5PBKJBOLxOPs6OTnB\n8fExMpkMy+EfxDC/abVaRSwWg1wuh0qlgt1uh8fjgVqtRqfTGefbuZCxi26n00Gz2USlUkEymcTB\nwQFev36NbDaLcrl8rXPSqqPb7SKVSmFrawupVIrdvbRaLQKBAAKBAFZWVqBUKuF0Om/zbc0cJJJ0\nAWezWZRKJdTr9R5BGEa73UalUmGr4UKhwHYhbrcbDodjAu9i9qDVbSqVwu7uLnZ3d7G/v49wOAxB\nENBsNi/1IRZFka3GDg4O0Gg0cHBwAKfTCYfDAbPZDJPJBIvFAo/Hw7If1Gr13ItuPB7Hf/7zH/zv\nf/9DuVxGuVxGoVBAMpnsCfr2B6fInvSY9Ge1Wg2JRALVahVOpxOrq6uo1+vQ6/VTb0s5EdFtNBoo\nl8tIJpM4PDzE1tbWjc8r/TCk02lsb2+znxkMBuY3k8lkcDqdAyOe8wK9t2q1inQ6jVgs1iO6Un+5\n1Pclvfg6nQ4qlQoqlQqy2SyOjo6g0+ng9Xrx4sWLyb6hGaHb7UIURTSbTSSTSfz222/4/vvvkUwm\nkUwmUSqVzvlgh0XU2+022u02ms0mDg8PEQ6HYbPZ4PF44PF4mPh6PB60Wi22c5PL5VOJvk+SeDyO\n//73v/jnP/95zmXQL6z0OICBgkvPr9frqNVqSCaTCAaDLIDcarXmV3Rp29poNJDNZhGNRhGPx6+9\nur3q76Yc1XQ6jWg0CrvdDr1eD51Ox1LRyOc2L8Tjcbx+/Zr5ciuVCkRRRKfTgVwuh8VigdVqhdFo\nZLbIZrNIp9MoFArMt9t/UU77Ip0W9XqdpTbu7Ozg4OAAqVQKpVIJoiiyzAO5XM5SwXQ6XY/AUr50\nvwC3Wi2Uy2XI5XI0m03k83nE43Ekk0koFAqWo36ffOmjbmCDgmb0uFSY+5/X7XZRKBRwfHwMu92O\nhw8fnqt0nTRjE11yAdTrdWSzWYTDYSQSiYmJbr1ehyAISKVSiEajMBqNsNvtLOVMp9OxxPV5IRaL\n4fXr1/jhhx8gCAJzF3S7XSgUCthsNgSDQfh8PrayorS9er3OAkGDRHZYqs48U6vVcHJygh9//BH7\n+/ssW0Ea+CWfq8FggNPphN1uR7PZZC41KkohF4TUNUauN0EQWOGE0+mE1WpFIBCAzWZj2+F5tnd/\n1kZ/cEz6mHR12/9Y/znoMUEQcHx8DL1eD4vFgqWlpUm+vXOMVXSpaqdcLiObzaJQKKDRaIzrVzI6\nnQ7zb8ZiMahUKoiiCK/XC6/XC7fbDZvNBpvNxgJs04xm3haCIOD9+/c4PDw89zNa6S4uLmJlZQUL\nCwtYWFhAt9tFMplEIpFgqzOi2+1CEAREIhGYzWZ2k6JAj1arnesUp1arhVQqxYpLaJVL214SXLVa\nDZvNhqWlJQSDQXYDy+VyUKvVEEURtVoNrVaL7TxIfPs/D7VaDZlMBuVyuad6cN6gBVm9XkehUGCB\nx0GrWOn3lElDLQFkMhm7yfVnQNHxxWIR0WgUWq0Wa2trQ4PKk2IiKWOTzj8k/yQAtpKIRCLw+/1Y\nWFhAIBDA8vIyZDIZK7SYB9EdhUwmg8FggMvlYjYIBAIIh8Mwm81Qq9VoNBo9fyNRFLG/v49//etf\n2NraYgn+KysrWF9fx+LiIhPieRReyryp1WostU4KpSbqdDr4/X48e/YMn376KROBRCKBvb09yOVy\nZDIZCIKAUqk0pXczW1AueSQSwZs3b5BOp8+tYPt9unK5HFarFU6nEwaDgT0vn8+ztEjp6lga68hk\nMjAYDCgWi5eqCRgnYxfd/u3BJOh0OiiXy6hWq8jlcohEIlAqlVhcXEQwGEQ2m4VMJmOpZpRWMs+Q\n6DqdTia6wWCwJ0quVCp7/k7tdhtv377F6ekpzGYz7HY77HY7/vSnP8FoNMLj8QDA3Fas0U6tVqsN\nzAKh60av1zPR/etf/8rKhMPhMBQKBRPaZrPJRff/oVzyX375BXt7ez2iS5DoAh8XblarFaFQCA6H\ng11z4XCYfdYHBd1qtRqazSbUajUEQZh90b1uYwuqClOr1TCbzSztSNrAZlzQ1o0CFoRKpWL+TZ/P\nB0EQWIngZV/XXWnKQlBlHvm0fT4fPB4PC9SQ2A4STkpDq1QqLB9VEAQsLy+jUCigVqsBwK31aJhF\n21JhD/UNGZSyRBkG1KiJApLtdhuPHj2CKIrQarWo1WpIpVIjA5PkGisUCigWi7DZbFd+zcOYpYY3\nlNVUKpVQrVaHFj8AH7KRLBYLC4Q9evQINpsNtVqNXZ9nZ2cjfxf5z8flrrmKba8kuleBtusajQYO\nhwONRgPxeBxGo/Fa57sNKFdYrVYjnU5DEAQ4HA7o9fpLn6P/Avv2229v9Jqua9/LolQqWQDB6XTC\n5/PB7Xb3bM8uA+XxiqKIfD6PYrGIarUKhUJxa5HgWbUtrbikaUmjMjzoBma1WvHgwQPY7XZ0Oh1E\no1G8fft2YBSeaLfbKJfLSKVSyGQycLvdt/IegNu1721ft/1lvMDHm5rFYsHKygrW1tbw+PFjPHny\nBEajEclkkpVhS4ufhgXixrkbu4ptx+ZeoJWuRqOB1WoFALjd7isJnPQ8crmcrWCvW1FCbfgUCgVr\nw1cqlWA0Guc2j5fq/s1mM8sDdblcV/bD0uqtWq1CEASUy2XUajVotdqpV/iMk0F5oIOS8aW2pAWH\nyWSC0WjE0tISYrEYfvzxx6GJ/oQoiigWi0gkEvD5fKhUKnOZvUAiKG2o1J99QP+32WxYXV3F8+fP\n8fjxYzx69Ii1AWi1Wj0d2/rFdZDtpL7iaTDd3n2XwGg0YnFxEYuLiygUCojH40in00wErvOBbzab\niMfjrIcv8KHFITUnmac0sv6Lm25g8/YhHhdSMehfhZH7jDI5+t0sFMQVBAHxeJyVs46Kc7TbbaTT\naRwcHMBisWB1dXX8b3IK0JQYp9MJm80GrVbbc0OiNDy9Xo9gMMhWugqFApFIBMViEfv7+3j79i0O\nDw+RyWQA4Jz7h/6VyWTMpVGpVFCtVlmnwkkz86JrMpmwsbGBL7/8EqenpyzvDsC1V1iNRoOlkikU\nCpZKRc2750l0gY+5pNIvzuUZJpSUvTBMdBuNBivOkYpu/zmliKKIdDqNSqUCh8OBXC43l8UpCoUC\nRqOR5SVrNJqe96lUKmE2m+FyuRAMBrG6uorV1VUkk0lEo1HWw2V7e5tVXw6rXqPHyK9LQXZKQZs0\nMy+6crmcTTaQNgG5yUpNFEXkcjl0Oh04HA6sr6+jXq+zpujzRP9K9zZWuZR7XSwWodPp5tq9MEok\nVSoVbDYbAoFAj+uMtq+1Wg3pdBrv3r1jojvsXER/OTYFK+cNElWfzweXyzXQ7SjNn6dc50QigYOD\nA7x9+xZv377Fu3fvLp37T+1lk8kk6yWi0+kmvuubedGt1WqIRCL49ddfkUwmWZu3QeWql4WCQp1O\nB/l8HpVK5cbnvE9UKhUkEgmcnp5CrVbf22Y4Op0OwWAQX3zxBR4+fMjsQJkLFLjtF13OB9G12WyQ\ny+U4PT2FyWTqceG0220Ui0V0Oh0cHh5Co9FAEATWfSwajSKVSp1rVQoMD6SJoohMJoPDw0NotVoo\nFIqpNMK6E6IbjUZRr9dZWeVtiG61WmX9GarV6tC+A5zzlMtlxONxhMNh1h/2PqLVahEMBvH5559j\naWkJdrv9XCVmIpHA8fExF90+SHRptSsVXeBjQLFcLrMeLtFoFNFoFJFIBIVCgd3cgPOlwP39GICP\n/vLDw0MYjUa4XK6pBNRmXnRbrRbz19Con2H9AS6LRqOB0+mE0+nEgwcP4PP5oNfr57IyjYYnCoKA\nbDaLZDIJk8nE7EctNofdyAb5x6TdzFZWVua2VPUiWq0WstksTk5O2Jw+i8WCWq2GUqnU09eYulxx\nPkDBMoVC0dNUvN8HSyveeDzOBoAWi0XU6/VzWQrSf/sfo9UzLbQEQWCLrUkHl2dedKljGK1EW63W\njUVXq9VieXkZm5ubePr0KZaWllgp7LSHMd6U/hxSGqCoUCjYWBkqEgGAZDLJhlVSz9dhwksfBqno\nzkJZ5bSo1WoIh8N4/fo1gA+ZNn6/H7VaDblcjuWRplIpCIIwkb4jd5VRbRzr9TpyuRwqlQqrLqOf\nSZ9/2UAa+cyp1SMw/jxeKRNRGArgUOWXwWBgA+guWiXRFqJ/lTBIHC6C0sGsVitWV1fx5ZdfYmNj\nA36/H0aj8c43bxmW90lNVsgPSzetbreLs7MzJggkuoPOKRXeWq3GVs3UxKjdbs9dKpo015wyXaQ0\nGg2cnZ2h3W7DaDQiEAhgdXUVuVwO8Xgc0WiUNZTnroXLMWi732g0zjViAgb30x11ThLwUqmEUqnE\nhFcaaJ4EYxddyj6wWCzM/9XpdFif0mw2e63zXkd03W43FhYWsLq6is3NTSwvL8PlcrHqrLsuuqNe\nO4nuzs4OotEo63gViURYh/5BotvvKwM+RpJpnloymYRer2d5lfOCSqWC2+3GxsYGRFHEyckJCoUC\n+znFBvL5PCKRCPb396FSqXBycoKTkxMcHR3h7Ozs3u4ErsKoijTpcy77GB0v/Z56sqRSKXYzFASB\nNdOZ1C53YqKrUqkQCoXQbrdhtVrxww8/oFAosKTmq3Id0XW5XNjc3MQnn3yChw8fYmlpiQ1evOuC\nSwx7H+12G4lEAq1WCyqVCo1GA/V6nQUUpWPZR1X0yGSygX5ii8UCuVw+V6KrVquZ6JK4np6esp+T\n6Ha7Xdb+stFo4OjoiAmuIAj31ud9VfqvXelKtl+MRz0mPV76fxLder2ORCKBTCaDQqEApVI50abm\nY2t4Q8hkMlbpZTab4fV60el0cHBwMPHu7QaDga12XS4XrFbrlUViFpuyXIZut9szoJJ6vl4Uve2/\n8IGPc+8oo6RYLKJSqcBisdzoNc6abZVKJRwOB5aXl5HNZnF6egqtVtvjGqMG5alUClqtFuVyGeFw\nmI29p+dRsEYaMCI/46TynGep4Y0Ug8GAxcVFPHnyBKVSCcViEbVajbkWL3IdkF2VSiUb9Nlut5HP\n53uKS+i6pfFh1WqV+XVv+jeYiYY3oxhUVnkb57vM86T/XodZbcpyEd1ut2ebO8iVcJVzAR/HzlD/\n2Juu6GbNtvQh9vv98Pv9cDqdsFgsrIcHZXwAYL1cqVl/qVTqCfrSakqj0bDydbLdMLtdZzc3illt\neON2u/HixQuo1WpW2huNRnuauA/LTpD63U0mEx49eoTHjx+jXq/j119/Za0cBwXZbpOZaHgziEHi\nOEnRva3fd1eRBi5vcvGRGNBwUOraP2+VaSS6KpUKfr8fLpcLFouFpS/STqHdbrM0JLlc3rN6JTtT\ntzcKIrdaLbZKbjabA/8e9yVnnER3dXUV//73v1EqlVjFKNloUNCMHqNOd1arFU+fPsXf/vY3tmLe\n3t4emOVw2ze0qzBx0aU7vtVqhdfrRaFQ6Bm3QQGe24LyAFUqFUwmEwv2qNXquRNgo9EIn8+HQCDA\nIrT9q6hh0V5p3iR1JDObzSzlaVD0ncTm7OwMTqcTLpdrfG9uClBtvl6vh8/nw+bmJkRRxNHREd69\ne4dkMtmzBabdhDQaThkz1OHNarWylTJVXI0q9aVc1XkI9A6DPpsKhQIbGxusvJx849JRPoNiDC6X\nC6urq9jY2MDTp0+xsLCARCJxbpxUf1B4WracqOhSVyatVgu73Y7FxUVUq9WeFA5KWL7N30mTWs1m\nMxPeeRRds9mMQCCAlZUVRKNR5he7DCQwarUaXq+XBRp//fVX1Gq1gaIriiIKhQLC4TBcLhdCodBt\nv6WpQosEuVwOn8+H58+fw+12s4BZtVplK15KywM+NhiSuhTcbjfr0VAoFFAoFCCXy9kA1WF/p06n\nA1EUb61vxixCn1GlUom1tTVWZNJutxGJRHoKIQbFGDweDz777DN89dVXCAQC8Hg8KBaLPZ/xQcdP\ni4mKLnVlooDW8vIygA9VURRJFASh58KiO73UoX4Vo6lUKjY1wW63sxHkNKZnnrBarVhaWkKxWIRS\nqUSr1WKFD7SF7d9W0aqMVnQmkwmBQABPnjzBkydPIAgC3r17B+B8JgMFK2j+3CQmPU8S6erf4XCw\nXNxKpYJ0Oo16vY5yuYxyuYxms8ncN0qlEiqVClqtFgaDAUajEcFgEMvLy/B4PIjH41AoFKjX68jn\n80NXXbRyptl189aMiSAbq9VqLC4usoGxp6en2Nra6pkqQTth8pMrFAq43W48fvwYX375JbM3dX0b\ntNKVMo2b2ERFl/xaMpkMKysr0Ol0WFxcRDqdZiWT6XS6J3eXpoWSG0Jab30ZdDodPB4PQqEQQqEQ\nfD4f7HY7DAbD3LQ4pIvJ5XLhyZMnsFgsWFtbwyeffIL379/j3bt3OD09ZeJLO4lutwu1Ws1GzVDA\n6NGjR1hfX0cwGITdbmcVbP3bO1EUmR8zmUzOdQGAtLhnfX0dnU6HFULk83mWetdsNqHT6VhnPJo6\n7XA44HQ6Wd/YfD5/4e+U5kOTX3NertlhkI1tNhsWFhawvr7OcqMpUJnNZiGKItu5ejwe2Gw2GI3G\nnlJ+6SKDrt1RZe6TYiqiq9Fo2ATVUqnE/IaxWIxV8RDFYhGRSIQFLShwcVm0Wi3cbjcTEZ/PB4fD\nwVJ45gWZTMaGTC4vL6NYLKJUKuGXX36BXC5nNzKp4NJqQafTwW63IxQKYWNjg4luIBCAzWZjK6z+\ngASJbrVavTeiq1AosL6+Dr/fj0KhgGQyiWQyyaZpVKtVmEwmmEwm2O12uN1ueDweaLVaNnE5n8/j\n+Pj4wt8piiKbl0YR+nmHbGy1WpnoFotFAGCpd7SjohRUt9sNm80Gg8HA3DCjxPXeuRcouEAXkNls\nZuNkzGYzbDYbfD4f+4Cn02l0Oh0UCgXmarhKVyvpuBrqyTuvF69Wq2XVf3a7nfkbC4UCRFFkNefS\naDmNVXc4HFhbW8Pq6ipCoRA8Hg9MJhPzRWYyGbaVlkbmKQhaq9XmutsYbVPlcjnLBbXb7bBYLHA4\nHCxXuV6vsy0u/Yxu8sCHtphmsxkGgwEajeZSVVDTDvxMEtIImhizubmJarUK4IPo0gikRqMBn88H\nn8+H1dVVtiO7C0y9uwt1kCdnutPp7FkxnZ2doVQq4ezsjG2Pebem0VAASCaTYXFxEX/4wx/g9/vP\nuRcAMPeCwWCAy+Vi41NMJhPkcjk8Hg82NzfRbrdxfHyMk5OTgSuF+yAI/SiVShZ1t1qtzLYUkNRq\ntcydRshkMmg0GrYIGBXQpVQoEuh5dy1I0el0CIVC0Gq17GbebrexuLiItbU1tFotljGzuLh4rqdz\n/41qWGnxNJi66NKFK+1vKcVutyMajeLNmzcsw4EzGspEUKlUWFxchMfjwfPnz1n+qDSfltwsFMiQ\nttlrt9vwer149uwZS20Kh8O8l8D/Q9euyWRijw3rAyD9nhL5KaA7DHIp0PPum+gGg0EEAgH2WLvd\nxtraGlKpFGsnYLVametmGIOEt/9nk2TqoksMqxajEsHNzU2oVCq0222USiXmapi2f2bWoQ8q+bn6\n22JSGtKgoZUk3uS2uOttL8fBVYt9KBNiZWUFgiAgGo0OjS1Uq1XEYjG8efMGfr8fXq+XTda+Dwxy\nqZArrNPpsNl00oXCIAYF0vL5PPb29qBUKvHpp5/i008/hdlsHuv7IWb+U6TVarGwsIBnz56h1Woh\nl8shFovdSl/d+wBFvKXBhUF3+mF+Q1ptkf9x2luzuw6JrlwuR7FYxN7e3lCbVioVnJ2dYXd3F51O\nByaT6V6Jbj8ymQw6nQ4KhYIFgalZVb/o9qdH9gfS8vk8tre3cXZ2BplMhkAggKWlpYm8j7E3vLkp\narWaRTLD4TD0ej0UCgWr0pk0s9aU5SJuGoCRVvSNe3t712x7HeRyOcxmM7RaLTweD+vjPIhGo4Fs\nNotwOAy3233jWMasNry5LJSrfNV85UF+3FqtxprLJ5PJGw8AnfmGN1eBchULhQJLQp9m7fSsNWWZ\nJ+6rbYddy7d9nc9qw5tx0O9X7w+kSfPSl5eXe/zy12FmG95cB2mjaGpNyF0KnHnhoirL/iYtnMsz\nKoPBZDJhaWkJm5ubWFpaurHoXoWZF91WqwVBEBCPx5HNZlGtVllrPM5k4R/68THMxdDvc+dcnUFt\nHWk47dLSElwu12w1MZ82FDwLh8NIJpMolUqsuQgXgcnDV1y3yygx5SJ7M/oDaVLhValUMJvN8Hg8\nbCjtpJh50W02m8jn84hGo6zFoLSV3lXggnE9LmM3bterI93+coG9XQY1O5cKMLWTdLvdsFgsXHSl\nGI1GrK+vo1qtYmdnB3t7e6hUKqyj00VuBsp11Ol00Gg0sFgsrFKI0k84o7mMKHDRuDyU4qTVauFw\nOBAMBpHNpUnqAAAEVklEQVTL5VAul3ui6K1WC+VymXXgo2kV89zmcRzc636614FE12KxQKFQMFeD\nTCa7lF+XRLfRaMBsNrM7m8PhgFqt5qJ7Rfiq7OZQIYpOp4PD4UAgEIBcLmeZOkSr1UKpVEI6nWaN\nhZrN5oXFAJzhQbR710/3Omi1WtYZLJ/P4+zsDNlstmeaLTViGWRMGh4oHUTX33+Aczm42N4caeMc\naTN/amEqhZoUUeZOvV5nDc15ocpoNBoNmyhRLBbZIFYaTEnc6zLgYUibt4RCIfz5z3+G3+9nxotG\no9jd3cXOzs5AIaV+ulRxQgMGjUYjXy1wpgJVCUrHVmUymXN9GGhGGLkdaLHAy7Evxul04quvvoLB\nYMDp6SkikQii0SjS6TTS6TR73tz3070O5LtSKBQIhUJwOp347LPP2CTVnZ0d1Ot1vHnzZqjoer1e\nbGxsYHl5GQsLC3A6nazrPIczaagkm2IMXq8X0Wj0nOjSLq1SqTDRvW4Q+b7hdDrxxz/+EZ988gm2\nt7fx+vVraDQadLtdCIIw1dc286ILfNySSYNhoiiyUSYvXrxgF2U/LpcLKysrWFlZQSgUYk25uW/y\nYqQdsSwWC+tFTCl7MpmM9eN1u90wGAzTfsl3BrItTUg4PT1lrR4pQEwRdofDAavVygaqKhQKfu1e\nAJWum81mFAoF5p4plUqIRCJTfW13QnQJ8oXRv0qlEn6/H3/6058QDAYHTpTQ6/WsBZzVamV9YjmX\ng6ZK0HRgnU7HdhnUvMXv9yMQCEysS9O8oFarYbfb0W632cBLjUbD7EsJ/KFQiHUYk87+4lwOi8WC\npaUlNJtNRCKRqQ8xmPmGN1Kkq1NyDXi9Xni9Xrx48WIir+E+NGUhZDIZ8zs6HA422BP40DBEqVTC\n6/VibW0NwWDwxqJ7n2wLfGzmRBOYHQ4HLBYL6vU66vU6cz2srKzA5/OxdMfrctcb3lwXs9nMXDp7\ne3us4RA1cbqNXe9VbCvrjnAOzUJ6xaxzExvNun273S5bdcViMezs7OC3335j+aIKhQIejwcejwfB\nYJC5cG6LebYt8MFnS+OO9vf3sbOzg+PjY7RaLbRaLZhMJjaSJhgMIhQKweVy3drvv66N7oJtpdDY\nqlwuh62tLWxtbUGn0+Hp06d48uQJzGYzmyB8W4yyERfdGzLvwkCTJqjTG81bI58uNTinuWC36ded\nd9tSU/lOpwNBEFgnPSpxp/l+Op2O+c5vc2t8X0SXBh40m002vZlGLFksFqhUqlsPrI+0UXcEALrf\nfffdqKcM5D4dc4EJR8LtO/oYbtvxHnNd+9Jxs/AeZvWYUba9MKJ0HR8QP2a85+bHjO+8/Jjxnpsf\nA/AwPofD4UwQLrocDoczSUb5K16+fNkFwL9GfL18+fLKfiBuX27bWfi6rn25bW9m25HZCxwOh8O5\nXbh7gcPhcCYIF10Oh8OZIFx0ORwOZ4Jw0eVwOJwJwkWXw+FwJsj/ATqKcN6OENe9AAAAAElFTkSu\nQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x112456410>"
       ]
      }
     ],
     "prompt_number": 15
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The neighbors look pretty good!\n",
      "Importantly, they are all zeros.\n",
      "That means that to some extent, at least, our assumption about images of the same digit being \"close\" to one another in pixel-space is a good one.\n",
      "\n",
      "### DIY\n",
      "\n",
      "* Use the nearest neighbors model to inspect results for other images in the test set.  Do all of the digits seem to perform as well as \"0\" does?  You may want to increase \"k\" to find where things break down."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "# Some cases are not so good, e.g.:\n",
      "show(query_img)\n",
      "show(train[result[0],:], len(result[0]))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nAz5+SGwAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x116e1e150>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x116e1dad0>"
       ]
      }
     ],
     "prompt_number": 16
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## KNN Classification\n",
      "\n",
      "We can validate our model in a more rigorous way by using it to predict digits.\n",
      "Scikit learn provides a class for supervised nearest neighbors fitting called [`KNeighborsClassifier`](http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html#sklearn.neighbors.KNeighborsClassifier).\n",
      "It is very similar to the `NearestNeighbors` class, but it accepts labels when fitting a model, and it provides methods for making label predictions for test data.\n",
      "\n",
      "The MNIST labels are in `mnist.target`.\n",
      "Let's split them into training and test sets as we did with the image data:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "train_labels = mnist.target[:60000]\n",
      "test_labels = mnist.target[60000:]\n",
      "test_labels_sample = test_labels[::100]"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 17
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Next, as before, we fit a model to the training data:"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%time\n",
      "from sklearn.neighbors import KNeighborsClassifier\n",
      "model = KNeighborsClassifier(n_neighbors=4, algorithm='brute').fit(train, train_labels)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 6.66 ms, sys: 1.71 ms, total: 8.37 ms\n",
        "Wall time: 7.83 ms\n"
       ]
      }
     ],
     "prompt_number": 18
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "## DIY\n",
      "\n",
      "* Use the KNeighborsClassifier.score method to measure the model's classification accuracy on `test_sample`."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%time\n",
      "model.score(test_sample, test_labels_sample)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "CPU times: user 1.39 s, sys: 332 ms, total: 1.72 s\n",
        "Wall time: 1.29 s\n"
       ]
      },
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 19,
       "text": [
        "0.96999999999999997"
       ]
      }
     ],
     "prompt_number": 19
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "* Next, visualize the nearest neighbors of cases where the model makes erroneous predictions"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "preds = model.predict(test_sample)\n",
      "errors = [i for i in xrange(0, len(test_sample)) if preds[i] != test_labels_sample[i]]\n",
      "\n",
      "for i in errors:\n",
      "    query_img = test_sample[i]\n",
      "    _, result = model.kneighbors(query_img, n_neighbors=4)\n",
      "    show(query_img)\n",
      "    show(train[result[0],:], len(result[0]))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAO0AAADtCAYAAABTTfKPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnety4soOhcXVxkCSqv1Aw5vtzJvxPPtyZhIwNhfD+XHO\n6iyLtoEETBprVXXZAZI4xB9SqyV153A4HMRkMgWj7r0vwGQyXSaD1mQKTAatyRSYDFqTKTAZtCZT\nYDJoTabQdKjRjx8/DiJiw4aNhsePHz8quayFVqT89J9//ln38rvLru9rsuv7vK59bZo9lrnHJlNg\nMmhNpsDUP/WC19dXd/7y8nLLa/myZrPZvS+hVnZ9X9N3vr6vXtt8Ppf5fH7Wazv/95/9T3Y6UvO0\nyWS6kerYM/fYZApMBq3JFJgMWpMpMBm0JlNgMmhNpsBk0JpMgcmgNZkCk0FrMgUmg9ZkCkwGrckU\nmAxakykwGbQmU2AyaE2mwGTQmkyByaA1mQKTQWsyBSaD1mQKTAatyRSYDFqTKTAZtCZTYDJoTabA\nZNCaTIHJoDWZApNBazIFJoPWZApMBq3JFJgMWpMpMBm0JlNgMmhNpsB0cqvLtkvvXLbf7+VwOLij\nPtffo7+/0+m40e12S19j8Ov0uclk0HpUBV1RFLLb7WS328l2uz063+/3JYD16Ha70uv1pN/ve4+9\nXk+63e7RwOMGrknEoD2StpZ8LIpCNpuNrNdryfNc1uu1G3meH4GLc3zd7XZlOByWxmAwKJ0DYgZa\nREpW19RuGbQeMajs9gLaLMskTVNZrValsdlspCgK2e/33mOv15PRaCRxHLvBX0dRJIPBoDREPjYY\n5o2GDd72yqCtkM+9ZWiXy6UsFovSyPNciqJwbjTOMfr9viRJIuPxWMbjcekcLvZwOJQoimS/34uI\nuLkvLC5fn4HbThm0pKq5qIZ2tVrJcrmUt7c3+f37txtZlrl5rm8MBgOZTqelsV6vS251URQlawpg\ndUAL12vgtk8GbYUYVsxJd7udrNdrZ2nf3t7kP//5j/z777/y77//SpqmzmJut9uj8+FwKC8vL/L8\n/CxZlpWAxe/0WVgObhmkJoPWI9+c1ucev729ya9fv+Sff/6Rv/76S97f3x2gm83m6DyKIknT1AG7\n3W4dpL1erxRsArDD4bBkfTW4BnL7dBLa19dXdz6bzWQ2m93wcu4vuKgcQMJYrVaSpqksl0s3p2UX\nGdACUg1uFEVH67Q88MEAkEWOXWTfui5eYwpX8/lc5vP5Wa/tHHyTJTxJ0co2qCgKB5kem81GFouF\n/P333/LXX3/J33//7Qa+Xi6XXrcY5+we8xHnT09Pbq47mUyOzqMocuu5WLvlr83iPo7q2DP3mFS1\nFovj+/u7/Pr1S97e3mSxWMhyuZQ0Td3zm82mFHiC1eR12+126+bF/X7fWViAzdaZI9CHw0HiOJbB\nYCD9fr90FBFLvmiRDFoS4MG8FeuvOMcc9u3tTd7f32W5XLrnkWTB7rQGd7/fu2DWarVyn6aw8JvN\npgQ+f6+IuCUhzHOHw6FzjdvkEbVdBi0JUG02G8nzXFarlbOovMSjLW2WZZLnuWw2G++c2GdpeQ6L\n34doMn8/L/8URSFxHJcCU3CRDdr2yKAl6QhxmqayWCzk/f1d3t7eSsNnaQGtL5WRLSqCRvgaHxBI\nhfRBKyKlDwEROVoSMrVDBi2J3eM8zx20v3//LrnFALnK0lYlZ8CSi4j7PZxjnGXZkUssUq7y0cAO\nBgMpiqL5N8t0Nxm0pCpokUTx9vbmXGUMbWn5Z/ER59vtVoqi8JboZVl2VObHS0MAl9dwkfJolrY9\nai20vpsc7ifmnXBbOc8YhQKwrkiSgFt7zu9lK6qfi6JIoihyQPLgqqD1ei1RFHmjzFXjlHT9blWt\nL79Wn5tur9ZBW1d6x8s1vD6LJSBYUwZFu7LXuD7OQ/Zdi74mDP4+HjqnuUqdTqe07qvHqaJ9UzNq\nHbQi1YUBVZAwGD5oz7Vk51yXBpbXb08NRKercp/rPlzghuvSQB4MLh8RWDNwm1GroPUFhjS0deD6\nEh+uPZ+ssrQ+KxtFUemxoijcdfIR56fc936/f+SSYxwOB5cMgiUmhtWAbU6tghZiYPnI1o3BrbO0\n1wb3nA+QqtHtdt1c23c8Be1gMJDRaFQaugoJwPZ6PRFpX6rrd1DroNWWlkcdJD5ocUNfG1jfB8gp\nYNfrtYtAo7ABGV043263R7+TLeRwOHTF+cjM2u/3bq4LQDmyzRlZZm2bkUGrgjenAlFV7vE1wT03\nEKVdZREpJYXw0tRisfBCy4qiyK03I3AFYAeDQamSSANrak6tg1bkGFzABxA1KD4ri/XWW0WPtXt8\nTiDqcDgcZXLxgDWuUhzH7u/SwKLCCAKwtkbcvFoJrYgcWUdf4bvPffa1Sb3mNfkCUOv12nVoRAYV\nR235ejWoyOICtJAP3jiOvX8PrOput3OBKV/+sy3/NKNWQuubi1X1G8YAMAwIr1teQwwtAmAMAwep\nuMQPCSCHw8G5wuwWI92SM7Z870lRFO5v4iUwZIhhvosgVZIkpTkvf4hY8sXt1EpoRY47/YvIEawa\n3F6v5yzttYEV+YAWVpbdWR/QDCwA0sEnPm6329rrxZxXlwsi+jyZTNzY7XYOTiwVVVlpC1JdV62D\ntqpNC9YdfVZWQwuLpDOEriF2jRlYfhzAxnEsy+XS9U3GnLZqyQfFClXvy3a79X5wcG0xygd5zov6\nXlhd/pkG7PXVOmghH7xV7jFv24Gm45z0fy0xMPxhwlZvvV4f7VKAISJHa8qXJFegYgguMYr1R6OR\nK47Qy0DD4VCSJKlMkzRgr6/WQQvQYAG0e1xlYTW4t7Cy7AJzQT1DhDYz3HIG56gi0umLpwoacP29\nXq+UUJJlWSkrKsuykksMYHlnhar3w+C9nloHrcjxjnQiHz2W6oJRvk2yrg0twGJg9UZcer6NcxE5\nKhbgcSrS3ev1Sh8OXFU0GAwkz/OShR2NRjKZTEp1xPwe67/NwL2OWgmtSBlWRGV9sGpwbzWXFSmn\nV+oPlrrqGv76K6V5vKufb2DpKYoiSZJEJpOJ5HleWtvlv4XfZ9P11FpoqwoHTu0/e+212arruofw\ngbTb7bytWrvdrltKQscOriuOoujIU8HPNXivp9ZB60uawKgrydNZUZwR9SgZQTrBREeDdREFotJY\nUtJr2igu6Pf7Vgl0RbUaWr2LQF2KIHep4IKBRwQX75GWjmIztMvl0qU8+rbq5BRI09fUKmh9tbN1\nOb4+K8s7vz8asJCeOuAxrjjyWVruW6VTHB/tPbqnWgWtSHV3CNyMp8D1NSJ/pBuSXWR2jwEtvz8+\naPVWnXCXH+k9urdaD+2pThUaXF/xwCOBi7+D11wRza5zjwEtLDMDe80qKFPLoPW5x7p+9lQgqirK\n/AgCnHrpBta2KhCVpqkkSeJ2q4dLjDXeR3qPvoNaBa1IdZE5d4eoa+rG7qPvGLoYXJ0sobOzdCAK\nUWJY2OFwePXuHqaWQuurmfVtnMVHjDbIB5gu1UOaY5qmEkVRqbOFtrT4UNTbcVr53ufUOmhNnxeC\nUZvNxuUlo7WqiJTm90gJRV40dvjj9qu+7C7TaRm0prPFFUfYNgXWldvuaBd5OBxKHMfeSiq95Ynp\ntAxa09liS5vnuXN3ub+Wz8LGcey6cPCw/OTPyaA1nS0uG4R1RPonyvPYwkZRJHEcS5IkpT5XiCcg\ncGUtWC+TQWs6W2xpRcQBi6BUURTOwgLY0WjkUkBR88sWVi8xmU7LoDWdLcxpUT8LgGFdi6JwwKL5\n23g8dluBojezSLm5niVfXCaD1nS2YGm5JQ5Hg4uiKLnE4/HY7XCv9+/F92Fua9b2fJ2E9vX11Z3P\nZjOZzWY3vBzTd1ZVPTHmotjNXtfZ4oi+y4guP2Lu9mc1n89lPp+f9dqLoDWZfOIsqqod/2Bp2cKi\nu6VZ2mOD+PPnz8rXmntsuli+SK+uDqraXkW3tLn2tiptkEFruppOActrtWjXau7x5TJoTZ9SlbU9\n5R7DwvL+vuYeX6bu6ZeYTH5p2Hxlj76dB3WrHnOPL5NZWtOXxeACQq5T5jLHwWBw0/192yCztKar\n6ZSl5U6Wj9qupwmZpQ1IVU3LuUrG16O5iX7NIlICVm/eFcexa6vKucmA18A9XwZtQMIeOry3EPcY\nFpHKAv4mwOA0xzzPZbVauXpbFBeIiKsCwtYidd0trIjgWAZtQOJ9dKIoqtw1T/dsFpFGgj26dI+7\nWQBKDSy2zmRoGVSr/jmWQRuQcMNzBQ0fRaS0Hy13lMCG0beUtrQMLPa05evHjnsMLVf9cPtWA/dD\nBm1A4i0mUUHD43A4SJqmpY4SmF82cdPzTvV5nrvHYH0Ph4Mrik+SRPI8P4KW/1aD1S+DNiD5oH16\nepLpdCpPT09yOByOejYhINTEze+rt+WeUofDwQE7nU6PoMXPMGDrZdAGJJ7TxnEs4/FYptOpvLy8\nyMvLi5szikjJ4ukuiLeSr95Wd6wAsNh1D9D6WrbiZxq8ZRm0AYnntNjQ+enpSV5eXuSPP/4o7Q7A\nSy79ft/BfEtV1dtyS5npdCqLxcLV2frmtPhZIhY99smgDUjc5ZCDOewec0/i1WrldnHXzdREpPL8\nszpVbxtFUakgHstRvqwog7VaBm1ggrXVzdNGo5EcDgfX5iWOYzeiKJIoitxabdUm2bdaxzUX97oy\naAMSF5D7GqiJyNEyEIDlLTp845rAnqq3NX1NBm1AYmjRU5jdZBE5srSAllMGMfT88dbSv8cA/pwM\n2sCkLS0iyWxpq9xjJOojOISoLba1vLW1NV1HBm1AAmy+huCj0Ug6nY4kSeK1skh15L1zMJ+9FVx1\nEWCzsp+XQRuQtHuMOS2WgDqdjrO0PhcZ3RBFPoDd7/c3Xw4yt/i6MmgDE7vH2tJ2u91KYLmoQKTc\nz4mt761lwH5drYNW35xVNapVg9X0DahraDGwBMTnVQOgcuJDUzJgr6PWQStSffP3er3aI9zIqk2X\nby1eV+Wlmqpznayg94G1fWHDVKuh1Wl25wxdPiZyHwvC8GIJB/viVGUX2QbOj6HWQetr1eIbVdbW\n14GwSelMJp0goS2tjuBql9jgDU+tgxY65SLXWVoGhtVkkoIG1mdp69zjpuezpuupddBWNUarGwwy\nw9p0RhF+V5WlFZGjr31/tylstQpan6Xh7RrrYMXXDAcXa98DXG1pfcUA+u+vi4abwlCroGXVAetz\nkfGYyEeKHkbTbnGVtRURb/S4DlSDNzy1Dlp9A/OmxryeiYwj3fEQc0dEbEWadY9hVbluNk1TWS6X\n0u12ZbVaueZu6Maot+Dwgd+UdNSbdyJAXrTerBoflvbh8j+1FlrehRw9lTgJnzONkiSRJElKXfNx\ns8HSNtEpHx0h0FP4/f1dRqORDIdDl1zx69cv+f37t7y9vcn7+3uprYuvu3+THf7xPumdB1Cwz8X6\nHLUXEXc0tRRajgLjZuh0OiXLytCiiRr6LvV6PbdBMvoiNWEFuI1MmqayWCxkOBy6v6Hb7cr7+7sb\ni8XCQevb/OoeO9axhQW0+BDChw8PkfJUxtQyaDkQBXDxdVEUpcJyQIta1fF47BqVcdQY7nITOhwO\nrlkbLC2atuE6lsulLJdL5zIztLC0ALYqe+qW189tVrmPVZZlrjXOcDgs9Yzi/5WpZdCKlN1j/hqW\nts495mZlIuU+v01ZWnxwpGlaAhaWH64mH9k91pb2Xu6xz9LiA5NLBuEqmz7USmiRhKDTGNk9hpUF\ntLC0Isdzs6ZcN7a0Gtg8z6XT6TgIsB8sD1jZe24zyR90vjktf4hwRZNZ2g+1CloGi10unPvcY8xp\nkySR7XZ75OI11Z5UpGxpRaQEbJqm0ul0nNvpG9rC3ts9xrXznFak3HUS12r6UKugFTmubOGbtSoQ\nxZaWLex6vXZRziYtrUi5GTk+bGB5uYhAn3Myxr2ixzoQxXNaeD3ccdL2sC3rJLSvr6/ufDabyWw2\nu+HlNKOqhHldXA5gEXnlpHxe/kEXfb65qo5fEbvlCIIhms3bSerMKP1YVVHBrcXXr13j5XJZmrvy\nshw+lPA4jlVFECFqPp/LfD4/67UXQfvo6nQ67gbhXd2wNKKXHgAO4NVrtnzE678inQXlq9jRMPrg\nvWdiBbvGDCyg1AEyvj4EAqtGyOBqg/jz58/K17bOPa4T5lJsaWHVdNqitra86ZR2S0XEHb+quioj\n/Xxd2mPTwOLaeJd4vfG0iD8NU+RjWQ5eBW+qjedDhvYSGbQkQAtLyxZW5x5rYNfrtRwOh9IO7GyR\nr5mj7IOW3XB9fu64tTS0WZY5YHXZI8TR/aIo3LLcfr8vAdumZSGDlsSWVgOLXc11ziyvNSJjSQOL\n77mGGFhfpwofsPy177lzfy/eo69cOwehEETjD8M6cPf7fel/I/KxLNSmQJVBS+I5LeaMADaKIlea\nxxYWSxZZlpUapol8AHtt1w03KP/sUwEwDcIlATL9fZ/9W/B+cOSdpxs6SqzrnUWkBCxHmg3alop7\nCmtgd7ud9Pv9I5cYwK5WqyMLiznYtdZxq+DhD4VzwDz19annPguudo85swzTCgaSgeXoOJ7HnLZt\n67gGLQk3gra4CCz1ej0vsGmaymg0csEoHai6pqX1QYlr14/5XvfZ3+V77tK/iaHFBxkvAWEKoUsn\nASd+n+793LZ1XINWiWs44Q7DtSyKwiVarFYrmUwm7gj3GHM0hujcoNG5OhfMUz/zHtFWzogSKa/d\nikipwodL9PS8l/9H8Ij4b3q0dVyWQXtCVckXvKEzSt663W6pWoVvPqQYclaS7qJ4bWtRF7E+5yb+\n6vdr8QeYr2E6J1xwbS2e13nT+j2Louhh13FZBi3p1D8VRQU6WwqJ+N1uV6IocsDqmw4uoB6wMrf6\nmzR4l9y8X/1+LQ466e02e72e5Hnu3j+Axp5OXc60bx1Xu9aPAK5BWyH9z+VIJSwt8pERQIGbpl07\nqNfrHbVWERGv1bj23/KVJZuvfj9LW1t+rNvtupRQXxS+ysLykhDHInxF9Nf6O+4pg9Yj/HP1P5Y3\nc47j2FlY3HA8H+N5mMhH4AZBGJ2oceub6Ks//xrXVzW/B4gIAPpqlrEuXtW0DskZg8GglAbJz+lr\nCRVcg7ZCPnABJpaA+MbQLhmvnwJMESm5y7hZmyrt+w7S0HKSiIgcWVjdl6tqHRcJFnEcl4DmYKLv\nWkIE16BVqnOh2D3mjCk8hqwpbWHZFWQLqwMybRAnhuD9g5VliHRbGgT7WDqCjJ/PH6S73U4Gg0Hp\n8dBl0HpU9Y+Fe+xLcUQASltYbq8Ca8Iu3zWTL7679PIWv8+cOKEt7GazkeFwWIKWky58wSYu6dMl\nk/x7QwTZoD1DfDMggqxzX3HTVPUXFpFSoMoXbEFnjLoRuqqSQyBev2VvBO+NbrHKH3hc1idShpe7\nVur129DANWgvFH/CI+cVN19RFK6cj+douGlGo5GkaSqr1cplUfH5er0urUXykhCn+D2q+MNJLwmJ\niMv1xhougONmBGhgp+MNSL7gtWGOKouEE1E2aC+QLx+WXT24wvqTXq/tamDRRC7Pc+cO4ubjOt26\nZIdHUdU6rsj/gOOmdnCjkZTBuyn4pi++hAv83FCAFTFoLxbnxOrHODKK12B5iFuxJknirC6AjeNY\nVquV66SI6iGRcoS1Lsf4EaQDd3iMIWRg0ScLbWKrgOV+XnCvQ12zNWgvEFtalk6T8wGLfGUAi8cB\nLDpArlYrWa1W3oR6fS2PBq52j/lx/jBkYNfrtURRJGmaymaz8QKLlFPEEvSyEdZxQ4HXoL1QGlpY\nQA6MMLDs5uZ5LsvlsmRdASu6QOrWK3pXA30tjwguR5GRuKLXvAEsOlkMBgPXsF1PScbjsYtA64Be\niLsXGLQXioMX3CIF4GKZgQNIOOZ5XgJWg+sDdrPZuMj0I0Lqk28NF5F5vCc6maXX6zkXWMcQJpOJ\nrNdrB61IuWl9aO+pQXuBdJRRrzsC3qrjer0ugYojrCwXesPCZllWasmiwX0kkPVykF7HxdEX/e10\nOs7ysks8mUxcnCCO46Msqns1ufuKDNoL5buRWD6QceT1XY5Cc2cGjp7yKIrCdeCv+x04nnte9TN8\nf1NTYij5a5yzeO5btYMCf3D61s9DAlbEoL2ZeNEeR55vYc6LG6wqxxlzsul06jo+1g1dDaPB9z3O\nQ8Tf+K2JGxvvDz7E9JHh5e+BptOpTCYTGY/HLsjHcQKdlBHa+ixk0DYgBtfXJoVvVp2MARfv+fnZ\nQcvWQnfW0PNo3iXv1GNVPxe6Nbiccab3qUVeN16nget0OjKZTGQ6ncp4PJYkSdz0g8slGdg6C/6d\nZdBeWbrgQLvDsLQcANE5tFyvC2B5SaPK9UNm0GeGTsHE3LrJQI3+UOMB8PA6n/sMj2QymRxBy8Dq\nbhYhASti0N5cHLRi95iBhSXhbTbH47FkWeYSB5At5XNx8RiCV8gQ4nPfcbPZeIvDdfJ+U8EuDS1v\n7B1FUSmK7huAFpZ2NBp5O4loS2vQmrw3OVtaDexutyttrwmgGK71el3qj+TbEY/7MNeNwWAgeZ4f\nFZuLyFEmUpPrmOwecx8ubDeKKiofdN1uV0aj0ZGlZSutrW2IwIoYtDeTL92Q0/AArIYP800M3r1d\nFxLowbvQVe0IzzcwA8s50xCnDzb1nukpAgJx4/G4tBWmhpeh1XNaLKdVQRsauAbtjaVvCJ67VkV/\nq0ZVoAnH9XotaZoejTiOJU3Tow6HHG1GZQyk0wmbcJH5w0xDO51OJYqi0lKZBjiO41r3mKPRoQIr\nYtA2qnNuEh/IeJwL6qsyrjitTw92EflnMrTsIXAKYRPyLYkhGPf09OSt1GGIoyiqDET53ONQ4TVo\nv7F0EEvPi3WlEbo7+CLTPrdYR531ejGWke4BrV6jfn5+ljiOKyPAgBZWli3tcDi0Oa3p9uK1XRE/\nuHgdHjscDhJF0RGwcDe5JYsGlrflYAvc5M3N0GrX+Pn5WUajkRdajMFg4Na2EbziJR+9ThsquAbt\nN5QvmwrSZYG+JRq8DsAiKo11TlhQ3pUdXTPwPEOrf+etdMrSjsfjkjvsg5ZzujkQxZY2ZGBFDNpv\nqypwccNBqFRh11ZbWCRQIPjFkWreTIy3LcHzPKe9dSS50/nY+MwH7WQyOZrH8vAlZeglH/ZMQpzP\nihi0306+jCptadlV5rVULj7A+i8vI2FbSA1slmUSRZFsNhv3vLZM0C3BPWVpp9NprXuMv5tTH/WG\nXnXJGaHIoP2G0uD6ntPzXQSmAJyvSGAwGBztr5tlmUuux7wWr9HLI9CtwD0F7dPTUy20VYUGfOT3\nNDRYIYP2m6ruZvIlbuBrnrfqZaN+v38EbJIkslqt3NwPwFZZWv5d177hq6B9enqS5+dneX5+Pgkt\ng+izpL5rDg3ck9C+vr6689lsJrPZ7IaXY6qTz+peIrR4RXSVG80lSeLmtOw+cwH+rQW4OAEFa8xI\n89QWVSdMhKr5fC7z+fys114ErSlscZqgrx0LJ3JwL2Fe2+WfdW3VZYgheMa/n6cKoUsbxJ8/f1a+\n1tzjFsmXcZQkSanBN2dIoX2LhvbWFk2nc3J+NV8Dg9smGbQtEpY6eD2T99jVwHJiQt2c8Jqq6sLB\n0OqEEnxfyO7xJTJoWyR2j9EZgzvy7/d7B2yWZS4poelEhDpLi0QSAPso7vElMmhbJB2d1VtooGNk\nlmWSpqnX0t5ap+a0sLB4vKkg2XeSQdsiaWj1FhpFUThgR6NRqSlaE9CeAhZplboNjlla08NKu8e6\nBU5RFLJarWSxWJRavDRpaUXq3WNek22jayxi0LZKvA6KrCnOvEJVjK8GtSloGVLeQRC7M+hGeVyq\n2BYZtC0TL5XwTa/T/e5RBcPlgsjaWq1WslwuZbFYSK/XkziOvfv/GrSmh5WucvGBqytgmgxC8ZIT\nOlGmaeqg1cDyhtFtkUHbQvksbVEUd+/swA3X4RJj421Aqy0s5uJmaU0PK21BtaW9Z8dCXisGtFmW\nyXK5lCiKXLcOBjaKoiB3vvuKDNoWSVe/+Era7tk/qcrSchtUdon1WnNbZNC2TFXA7vf7UqT4Hp0d\nfNByZhY8AS7dQ860QWt6aJ3jHt+jo4PPPV6tVl4LOxqNZLPZmKU1Pb7YRUZ2ke7w4NuxDkP3Ysbx\nWtDoHlVctI9tUrDrAooJ2gSsiEHbSmlLy+1qeDMwVAKh7pZ7Kvt2QGgbPPeSQdsi+ZqZaWi53tYH\nLXdy5HK5tqYU3kMGbQulgcXxHEsL17Tb7cputxORjwCSqRkZtC2Tb9kHOgda5ALj5+iey6bby6Bt\nobR7DJ0DrW5ejqCRqTkZtC2TBpYLyTly7IN2u92WgMXcNtT+waHKoG2hGDLus3TK0m63WxE53rwr\n9Palocmgbak0ZHo/HG4Wnue5rNdrEZHK/W13u5133fbS7hK+hA+9xy76VoW8idZXZNC2SKdubt5m\nMkkSWa/Xbm220+m4bCRuQ8MAIx1Sr+Xi/BS4AJa7a8Rx7K7Ht+csN55riwzalotvdm6vyskUIlJa\nv63anLrb7ZZaw/j6FZ8SpyuyxQe0vH0lf3AYtKaHFwOHc53bWwesdpGxZosd+hCg4teca2n1vJqh\nxWZhPmvfFhm0LRS68vvmtVyjqpubc3mcyHFA6nA4uL1wNbDnXpe2tOwe8+7uvo2i2yKDtqXygQsr\nF8dxqUsjoMEGWCLHwGJvW986LlvdU9ek57Sn3OMmNwj7LjJoWybe+0aDBEi1hQWYw+FQRMprtNzP\nCc3E+TVoe3quJTzHPTZLa2qdqm5wgAp49abUURQdWVhuwOZbx0UW1bnXpYsWdPQYX+tG6gatqXWq\nqvzR66xZlkme527tFjWuyEdGpwkMWEVsWF2nyWQi0+lUptOpTCYTmUwmMh6PZTwee4NQOijWFhm0\npkrpCDMsMSzfdDp1ASg0O2eg+Qj3uU5Jksgff/xRGi8vLzKdTivns+Yem0z/lw5UoYQP0GKLTESZ\ne72ejMe1xMuxAAABuElEQVRjZ3l9x1PQjkYjeXl5KY3n52eZTCYlK6uDUG0CVsSgNXnEwFat4yZJ\n4oBFpDfPc9cOBoO/PgVtFEXOPX56enLnbGk5nVH3tGqLDFqTVz5w2dKyhUXACI3WuFiex6n12sFg\n4OavGPw1bwiGFMamNwf7DjJoTSXpJSG2tIAWj/Hm1JPJxFnTqnEqI6rf77sNwDB/5XPOgPJtY9IW\nGbSmI1Wt5QJatrDYTZ67I/qKBs5JY+TSQD7iHFaVQcV5m2TQmrzyWS5Aw9tkcl6xXiK6tMWq7sXM\nTdPZmuqWOVXX+6g6Ce3r66s7n81mMpvNbng5pu8sWFjT9TWfz2U+n5/12s6h5iOQ3SSTydSc6thr\n12TAZHoAGbQmU2AyaE2mwGTQmkyByaA1mQKTQWsyBSaD1mQKTAatyRSYDFqTKTAZtCZTYDJoTabA\nZNCaTIHJoDWZApNBazIFpougPbfe716y6/ua7Po+ryavzaBtUHZ9X9N3vr5vC63JZLq/DFqTKTQd\navTjx4+DiNiwYaPh8ePHj0oua3tEmUym7ydzj02mwGTQmkyByaA1mQKTQWsyBSaD1mQKTP8FdAo9\nAz5+SGwAAAAASUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x11677cfd0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x116ebfad0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x12d670cd0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nf38mtiPc011cAAAAAElFTkSuQmCC\n",
       "text": [
        "<matplotlib.figure.Figure at 0x116f5b250>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\nSUVORK5CYII=\n",
       "text": [
        "<matplotlib.figure.Figure at 0x116dbaed0>"
       ]
      },
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "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\niS5BEMQI+R+iifx1iOysoAAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x116d9fe10>"
       ]
      }
     ],
     "prompt_number": 20
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "* Finally, let's get a more global view of classification errors.  To do this, we can create a **confusion matix**, that counts how often each class is mistaken for each other class.  Use [`sklearn.metric.confusion_matrix`](http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html) to generate a confusion matrix between model predictions and test labels.  Which pair of digits are confused most frequently?"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "test_sample = test[::10]\n",
      "test_labels_sample = test_labels[::10]\n",
      "preds = model.predict(test_sample)\n",
      "\n",
      "def plot_cm(cm):\n",
      "    pylab.matshow(np.log(1+cm))\n",
      "\n",
      "from sklearn.metrics import confusion_matrix\n",
      "cm = confusion_matrix(test_labels_sample, preds)\n",
      "\n",
      "print cm\n",
      "plot_cm(cm)\n",
      "\n",
      "# Looks like 2 and 7 have the most confusion"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": "*"
    }
   ],
   "metadata": {}
  }
 ]
}